#pragma once
#include<list>
#include<deque>
namespace mutou{
template <class T,class container=deque<T>>
class queue
{
public:
	void push(const T& val)
	{
		_con.push_back(val);
	}
	void pop()
	{
		_con.pop_front();
	}
	T& front()
	{
		return _con.front();
	}
	T& back()
	{
		return _con.back();
	}
	const T& front() const
	{
		return _con.front();
	}
	const T& back() const
	{
		return _con.back();
	}
	size_t size() const
	{
		return _con.size();
	}
	bool empty() const
	{
		return _con.empty();
	}
private:
	container _con;
};
}
